home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Tools 4
/
Amiga Tools 4.iso
/
tools
/
netzwerk
/
parnet
/
sources
/
tag.asm
< prev
next >
Wrap
Assembly Source File
|
1996-02-26
|
2KB
|
133 lines
; TAG.ASM
;
; Tag for PARNET.DEVICE (Parallel Port Network)
;
; Provides unit vectoring of commands and C layering.
include "exec/types.i"
include "exec/exec.i"
include "exec/resident.i"
section text,code
xref _LVORemTask
xref _CDevInit ; C routines for assembly tags
xref _CDevOpen
xref _CDevClose
xref _CDevExpunge
xref _LinkerDB ; Lattice C linker A4 base (ea)
xref _CParNetTask
xref _UnitControlOpen
xref _UnitDGramOpen
xref _UnitStreamOpen
xdef @ParNetTask
xdef _ParNetTask
moveq.l #-1,D0
rts
InitDesc:
dc.w RTC_MATCHWORD
dc.l InitDesc
dc.l EndCode
dc.b 0 ; not auto-init
dc.b 2 ; version
dc.b NT_DEVICE
dc.b 0 ; priority
dc.l _DeviceName
dc.l _IdString
dc.l _DevInit
dc.l 0 ; extra ?
dc.l 0
dc.l 0
section __MERGED,DATA
xdef _DeviceName ; tag strings
xdef _IdString
xdef _DeviceVectors ; device vectors
xdef _UnitVectors
_DeviceName: dc.b 'parnet.device',0
_IdString: dc.b 'parnet.device 2.0 (23 Dec 1990)',13,10,0
ds.l 0
_DeviceVectors:
dc.l _DevOpen
dc.l _DevClose
dc.l _DevExpunge
dc.l 0
dc.l _DevBeginIO
dc.l _DevAbortIO
dc.l -1
_UnitVectors:
dc.l _UnitControlOpen
dc.l _UnitDGramOpen
dc.l _UnitStreamOpen
EndCode:
section text,code
_DevInit: movem.l A0/A4,-(sp) ; A0=segment
lea _LinkerDB,A4 ; Lattice C
jsr _CDevInit
movem.l (sp)+,A0/A4
rts
_DevOpen: movem.l D0/D1/A1/A4,-(sp) ; D0=unit, D1=flags, A1=iob
lea _LinkerDB,A4
jsr _CDevOpen
addq.l #4,sp
movem.l (sp)+,D1/A1/A4
rts
_DevClose: movem.l A1/A4,-(sp) ; A1=iob
lea _LinkerDB,A4
jsr _CDevClose
movem.l (sp)+,A1/A4
rts
_DevExpunge: move.l A4,-(sp) ;
lea _LinkerDB,A4
jsr _CDevExpunge
move.l (sp)+,A4
rts
_DevBeginIO: movem.l A1/A4,-(sp) ; A1=iob
move.l IO_UNIT(A1),A0 ; vector through unit
move.l LN_SIZE(A0),A0 ; (see defs.h/Unit)
lea _LinkerDB,A4
jsr (A0)
movem.l (sp)+,A1/A4
rts
_DevAbortIO: movem.l A1/A4,-(sp) ; A1=iob
move.l IO_UNIT(A1),A0 ; vector through unit
move.l LN_SIZE+4(A0),A0 ; (see defs.h/Unit)
lea _LinkerDB,A4
jsr (A0)
movem.l (sp)+,A1/A4
rts
@ParNetTask:
_ParNetTask:
lea _LinkerDB,A4
jsr _CParNetTask
move.l 4,A6
sub.l A1,A1
jsr _LVORemTask(A6)
rt jmp rt
END